const AdminBiz = require('../../../../store/admin_biz_config.js');
const pathResolver = require('../config/path_resolver');
const pageHelper = require('../../config/path_import.js').pageHelper;
const { createStoreBindings } = require('mobx-miniprogram-bindings');
const { userAdminStore } = require('../../../../config/store_config.js');

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		isLoad: false,
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	async onLoad(options) {
		if (!AdminBiz.isAdmin(this)) return;
		if (!pageHelper.getOptions(this, options)) return;

		// 创建MobX Store绑定
		this.storeBindings = createStoreBindings(this, {
			store: userAdminStore,
			fields: ['currentUser', 'loading'],
			actions: ['loadUserDetail', 'resetUserDetail'],
		});

		await this._loadDetail();
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady() {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow() {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide() {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload() {
		// 清理MobX绑定
		this.storeBindings.destroyStoreBindings();
	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	async onPullDownRefresh() {
		await this._loadDetail();
		wx.stopPullDownRefresh();
	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage() {

	},

	_loadDetail: async function () {
		if (!AdminBiz.isAdmin(this)) return;

		let id = this.data.id;
		if (!id) return;

		// 使用MobX store的action加载用户详情
		const result = await this.loadUserDetail(id);
		
		// 更新页面加载状态
		if (!result) {
			this.setData({
				isLoad: null,
			});
			return;
		}
		
		this.setData({
			isLoad: true,
			user: this.data.currentUser // 从MobX store获取用户数据
		});
	},
	
	url(e) {
		pageHelper.url(e, this);
	}
})